package git.soulbgm.pojo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;

import java.util.Date;

/**
 * 硬件设备信息表
 *
 * @author SoulBGM
 * @date 2020-11-18 10:03:05
 */
public class NodeInfo {

    /**
     * ID
     */
    private Long id;

    /**
     * 节点/主机编号
     */
    @Excel(name = "主机编号", type = 10)
    private Integer nodeCode;

    /**
     * 主机名
     */
    @Excel(name = "主机名")
    @TableField(condition = SqlCondition.LIKE)
    private String hostname;

    /**
     * IP地址
     */
    @Excel(name = "IP地址")
    @TableField(condition = SqlCondition.LIKE)
    private String ip;

    /**
     * 访问端口 0-65535
     */
    @Excel(name = "访问端口", type = 10)
    private Integer port;

    /**
     * 操作系统 1 Linux 2 Windows 3 Mac
     */
    @Excel(name = "操作系统", replace = {"Linux_1", "Windows_2", "Mac_3"})
    private Integer operatingSystem;

    /**
     * SSH端口 只限Linux
     */
    @Excel(name = "SSH访问端口", type = 10)
    private Integer sshPort;

    /**
     * 登录用户名
     */
    @Excel(name = "登录用户名")
    private String username;

    /**
     * 系统密码
     */
    @JsonIgnore
    private String password;

    /**
     * 启动监控客户端脚本存放路径
     */
    @Excel(name = "启动监控代理脚本路径")
    private String startupScriptPath;

    /**
     * 停止监控客户端脚本存放路径
     */
    @Excel(name = "停止监控代理脚本路径")
    private String stopScriptPath;

    /**
     * 区域编号 0代表不区分区域 其他为自定义
     */
    @Excel(name = "区域编号")
    @TableField(fill = FieldFill.INSERT)
    private Integer regionCode;

    /**
     * 监控模式 1被动 2主动
     */
    @Excel(name = "监控模式", replace = {"被动_1", "主动_2"})
    private Integer monitorMode;

    /**
     * 是否自启 0 不自启 1 自启
     */
    @Excel(name = "是否自启", replace = {"不自启_0", "自启_1"})
    private Integer selfStart;

    /**
     * 监控状态 0 关闭 1 开启
     */
    @Excel(name = "监控状态", replace = {"关闭_0", "开启_1"})
    private Integer status;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getNodeCode() {
        return nodeCode;
    }

    public void setNodeCode(Integer nodeCode) {
        this.nodeCode = nodeCode;
    }

    public String getHostname() {
        return hostname;
    }

    public void setHostname(String hostname) {
        this.hostname = hostname;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public Integer getPort() {
        return port;
    }

    public void setPort(Integer port) {
        this.port = port;
    }

    public Integer getOperatingSystem() {
        return operatingSystem;
    }

    public void setOperatingSystem(Integer operatingSystem) {
        this.operatingSystem = operatingSystem;
    }

    public Integer getSshPort() {
        return sshPort;
    }

    public void setSshPort(Integer sshPort) {
        this.sshPort = sshPort;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getStartupScriptPath() {
        return startupScriptPath;
    }

    public void setStartupScriptPath(String startupScriptPath) {
        this.startupScriptPath = startupScriptPath;
    }

    public String getStopScriptPath() {
        return stopScriptPath;
    }

    public void setStopScriptPath(String stopScriptPath) {
        this.stopScriptPath = stopScriptPath;
    }

    public Integer getRegionCode() {
        return regionCode;
    }

    public void setRegionCode(Integer regionCode) {
        this.regionCode = regionCode;
    }

    public Integer getMonitorMode() {
        return monitorMode;
    }

    public void setMonitorMode(Integer monitorMode) {
        this.monitorMode = monitorMode;
    }

    public Integer getSelfStart() {
        return selfStart;
    }

    public void setSelfStart(Integer selfStart) {
        this.selfStart = selfStart;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}